package com.lmabbe.tenant.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lmabbe.tenant.objects.entity.Module;
import com.lmabbe.tenant.objects.entity.ModuleResource;
import com.lmabbe.tenant.objects.vo.ModuleResourceVO;
import com.lmabbe.tenant.objects.vo.ModuleTreeVO;

import java.util.List;

/**
 * 系统模块
 *
 * @author lmabbe
 */
public interface ModuleService extends IService<Module> {
    /**
     * 获取模块资源
     *
     * @param moduleId 模块ID
     * @return
     */
    List<ModuleResourceVO> resources(Long moduleId);

    /**
     * 获取资源详情
     *
     * @param resourceId
     * @return
     */
    ModuleResource resource(Long resourceId);

    /**
     * 新增模块资源
     *
     * @param resource
     */
    void addResource(ModuleResource resource);

    /**
     * 删除模块资源
     *
     * @param resourceId
     */
    void delResource(Long resourceId);

    /**
     * 获取子级资源ID
     *
     * @param parentId
     * @return
     */
    List<ModuleResourceVO> childResources(Long parentId);

    /**
     * 修改资源
     *
     * @param resource :
     * @date 2022/1/10 8:50 PM
     * @author liming
     */
    void editResource(ModuleResource resource);

    /**
     * 获取所有树形结构
     * @return
     */
    List<ModuleTreeVO> allTree();
}
